programming4us
           
 
 
Applications Server

BizTalk Server 2010 : WCF SAP Adapter RFCs and BAPIs - Overview of SAP RFCs and BAPIs

- Free product key for windows 10
- Free Product Key for Microsoft office 365
- Malwarebytes Premium 3.7.1 Serial Keys (LifeTime) 2019
7/14/2013 7:31:59 PM

Overview of SAP RFCs and BAPIs

The terms RFC and BAPI are often used interchangeably, especially by non-SAP resources. Technically, they are very similar but operate at two different levels of detail. Over the course of this next section, we will further discover the similarities and differences between these two technologies.

RFCs

RFC stands for Remote Function Call and is the standard SAP interface when exchanging data across SAP systems or between non-SAP systems and SAP systems. You can think of an RFC much like a C# method, the difference being SAP provides an interface that allows for communication with SAP systems. There are three different types of RFCs:

RFC Type Description
Synchronous RFC&;&; As the name implies, this type of RFC utilizes request-response connectivity when exchanging information between SAP and SAP systems or SAP and Non-SAP systems. This is probably the most popular type of RFC due to the popularity of Request-Response requirements.
Transactional RFC (tRFC)&;&; "Transactional RFCs (tRFCs) are RFCs that are invoked as part of a logical unit of work (LUW). On an SAP system, a LUW contains all of the steps necessary to complete a business or programming task. A tRFC represents a way of invoking an RFC; it is not a unique SAP artifact."

This RFC was previously known as an Asynchronous RFC and for a good reason. Once the request is sent from a client, SAP will process this data and associate a unique Transaction ID. This ID and corresponding data will be stored in SAP, which allows a disconnected client to receive the information when it comes back online. This ID is also used when calling theRfcConfirmTransID operation, which will confirm the tRFC call and allows SAP to remove the current entry from its database.

tRFCs guarantee that all Logical Units of Work (LUW)&; will be executed but cannot guarantee the order of transactions will be maintained throughout execution. Also note, there is a performance hit when using this method.
Queued RFC (qRFC)&;&; If you need to guarantee that several transactions, either inbound or outbound, are executed in order then qRFC provides in order, once only delivery. Much like other ordered delivery scenarios, there is a performance hit when using this method.

Note: qRFC client functionality has been deprecated from BizTalk as of Microsoft BizTalk Adapter 3.0.


BAPIs

The simplest way to describe a Business Application Programming Interfaces (BAPI) is a RFC-enabled function module. A function module is a logical grouping of domain specific functions that belong together. For instance, we may have a Human Resources (HR) function module that will contain all available HR operations. The key difference between BAPIs and RFCs are the levels of detail in which they operate. You can think of BAPIs as operating a Business Process level where as an RFC will be operating at a lower, or more granular, level.

RFCs/BAPIs vs. IDOCs

A question that comes up regularly is when to use RFCs/BAPIs versus IDOCs. It really comes down to a few factors:

  • Is your integration scenario synchronous or asynchronous?

  • Does an out-of-box interface exist?

  • Are you trying to chain multiple events/processes together?

  • Does your process require SAP Workflow?

Synchronous vs asynchronous

Synchronous scenarios are better suited to leveraging RFCs/BAPIs due to their immediate request/response mechanisms. For example, take the situation where SAP is the system of record for customers within your organization, but you have chosen to use Dynamics CRM/XRM for a specific application. We do not want to manually key in customer information in both systems if we don't have to. So we can build an interface that will query SAP to retrieve the master data for an existing customer in our organization. In this situation, we would not want to use an IDOC, if we are expecting an immediate response, as BizTalk would send the IDOC in and then have to wait for a response from SAP asynchronously. When SAP does send the response back to BizTalk, we may have to correlate this response with the request that was sent into SAP so that BizTalk can provide a correct response to the calling application.

Conversely, if your scenario does not require an immediate response, like a fire and forget scenario, then using an asynchronous mode provides some additional breathing room to get a message to SAP. In a Work Order Management (WOM) system that provides order updates to SAP, the WOM system wants the updates to make it to SAP, but does not need immediate feedback that the message was sent. For instance, if our SAP system has a regular maintenance window to perform a backup, we don't want our WOM system to be interrupted during this planned outage. BizTalk can use its out-of-box retry mechanism to reliably deliver this message to SAP.

Does an out-of-box interface exist?

This scenario can go either way. Not all interfaces are created equally. For example, an IDOC may exist that allows you to submit employee time records where as an RFC/BAPI may not and vice versa. The ability to use an out-of-box interface and reduce, or prevent, SAP customization is a valid situation to choose one type of interface over another.

Are you trying to chain multiple events/processes together?

We introduced the concept of Logical Units of Work. If you have multiple units of work that logically tie a business process together, then using an RFC/BAPI is a better choice due to the ability to commit and rollback transactions. IDOCs are separate entities that are not related to each other.

Workflow

If you need to execute SAP Workflow as part of an integrated scenario, then using IDOCs is a better alternative. You do not want BizTalk in the middle of a Request-Response situation, with a client, while SAP is executing workflow. This risk here is the execution SAP Workflow can be somewhat unpredictable based upon workflow load and priority.

Other -----------------
- Exchange Server 2010 Administration Essentials : Understanding Exchange Server 2010 Organizations (part 2) - Using Configuration Containers Instead of Administrative Groups
- Exchange Server 2010 Administration Essentials : Understanding Exchange Server 2010 Organizations (part 1) - How Site-Based Routing Works
- Exchange Server 2010 Administration Essentials : Validating the Exchange Server Licensing
- Installing Configuration Manager 2007 : ConfigMgr Service Manager
- Installing Configuration Manager 2007 : Transfer Site Settings Wizard, Copy Packages Wizard
- Microsoft Dynamic AX 2009 : The Batch Framework (part 6) - Managing the Batch Server Execution Process - Manage Batch Jobs, Debug a Batch Task
- Microsoft Dynamic AX 2009 : The Batch Framework (part 5) - Managing the Batch Server Execution Process - Set Up Server Configuration, Create a Batch Group
- Microsoft Dynamic AX 2009 : The Batch Framework (part 4) - Creating a Batch Job - Using the Batch API
- Microsoft Dynamic AX 2009 : The Batch Framework (part 3) - Creating a Batch Job - From the Batch Job Form
- Microsoft Dynamic AX 2009 : The Batch Framework (part 2) - Batch-Enabling a Class
- Microsoft Dynamic AX 2009 : The Batch Framework (part 1) - Batch Processing in Dynamics AX, Common Uses of Batch Processing
- Using Non-Windows Systems to Access Exchange Server 2007 : Terminal Server Client for Mac
- Using Non-Windows Systems to Access Exchange Server 2007 : Configuring and Implementing Entourage for the Mac
- Microsoft Lync Server 2010 : Planning for Deploying External Services - High Availability
- Microsoft Lync Server 2010 : Planning for Deploying External Services - Firewall Configuration (part 2)
- Microsoft Lync Server 2010 : Planning for Deploying External Services - Firewall Configuration (part 1)
- Microsoft Lync Server 2010 : Planning for Deploying External Services - Edge Server Considerations
- Microsoft Dynamic GP 2010 : Receivables Management (part 4) - Sales e-mail settings, Customers
- Microsoft Dynamic GP 2010 : Receivables Management (part 3) - Customer classes
- Microsoft Dynamic GP 2010 : Receivables Management (part 2) - Receivables Setup Options, Sales Territories, Salespeople
 
 
 
Top 10
 
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Finding containers and lists in Visio (part 2) - Wireframes,Legends
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Finding containers and lists in Visio (part 1) - Swimlanes
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Formatting and sizing lists
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Adding shapes to lists
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Sizing containers
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 3) - The Other Properties of a Control
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 2) - The Data Properties of a Control
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 1) - The Format Properties of a Control
- Microsoft Access 2010 : Form Properties and Why Should You Use Them - Working with the Properties Window
- Microsoft Visio 2013 : Using the Organization Chart Wizard with new data
- First look: Apple Watch

- 3 Tips for Maintaining Your Cell Phone Battery (part 1)

- 3 Tips for Maintaining Your Cell Phone Battery (part 2)
programming4us programming4us